<!DOCTYPE html>
<html lang="en">
    <head>
        <meta charset="UTF-8"/>
        <meta name="viewport" content="width=device-width, initial-scale=1.0"/>
        <meta http-equiv="X-UA-Compatible" content="ie=edge"/>
        <title>Document</title>
        <script>

            /* 
                任何程序在执行的时候都要占用内存空间内。函数调用的时候也要去占用内存空间。

                垃圾回收机制：调用函数的时候，系统会分配对应的空间给这个函数使用(空间大小一般情况由这个函数里声明的变量和形参决定)。
                            当函数使用完毕以后，这个内存空间要释放，还给系统。
                
                【注】在函数内部声明的变量和形参是属于当前函数的内存空间里的。


                内存管理机制：在函数中声明的变量和形参，会随着函数的调用被创建，随着函数的调用结束而被销毁。
                       在函数中声明的变量和形参，有效范围是当前函数(当前函数的大括号)，作用域，局部作用域。

                就近原则：离哪个作用域近，就使用哪个作用域内的同名变量。

                局部作用域：一个函数的大括号。在这个函数内部声明的变量或者形参，只能在当前函数内部使用。
                全局作用域：整个页面。


             */
           /*  var a = 2;   //声明在全局作用域的变量叫做全局变量
            function show(){
                a++;
                alert(a);
            }

            show();
            show();
            alert(a); */

            /* function show(){
                var a = 2;  //局部变量  局部作用域
                a++;
                alert(a);
            }

            show();  //3
            show();  //3
            alert(a); // a is not defined */


            var a = 10, b = 20;
            function show(a){
                var b = 100;
                a += 5;
                alert(a + ", " + b);
            }

            show(a); //15, 100 //a = a

            alert(a + ", " + b); //10, 20
        </script>
    </head>
    <body>
        
    </body>
</html>